﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Tworzenie_Grafiku
{
    /// <summary>
    /// Interaction logic for Dokumenty.xaml
    /// </summary>
    public partial class Dokumenty : Window
    {
        List<String> rodzaje_dokumentow = new List<String>();
        String id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika;

        public List<DokumentSprzedazy> sprzedaz { get; set; }
        public List<DokumentKosztow> koszty { get; set; }
        public List<DokumentInny> innedok { get; set; }

        public Dokumenty(string id, string imie, string nazwisko, string stanowisko)
        {
            InitializeComponent();
            id_uzytkownika = id;
            imie_uzytkownika = imie;
            nazwisko_uzytkownika = nazwisko;
            stanowisko_uzytkownika = stanowisko;
            konto.Text = imie + " " + nazwisko;
            sprzedaz = new List<DokumentSprzedazy>();
            koszty = new List<DokumentKosztow>();
            innedok = new List<DokumentInny>();
            rodzaje_dokumentow.Add("Sprzedaż");
            rodzaje_dokumentow.Add("Koszty");
            rodzaje_dokumentow.Add("Pozostałe");
            Typ.ItemsSource = rodzaje_dokumentow;
            inne_lista.Visibility = Visibility.Hidden;
            koszty_lista.Visibility = Visibility.Hidden;
            pokaz.Click += new RoutedEventHandler(pokaz_Click);
        }

        private void Typ_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Data_od.IsEnabled = true;
            dodaj.IsEnabled = true;
        }

        void Data_od_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            Data_do.IsEnabled = true;
            Data_do.Text = Data_od.Text;
        }

        void Data_do_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            pokaz.IsEnabled = true;
        }

        private void pokaz_Click(object sender, RoutedEventArgs e)
        {
            sprz_lista.ItemsSource = null;
            koszty_lista.ItemsSource = null;
            inne_lista.ItemsSource = null;
            sprzedaz.Clear();
            koszty.Clear();
            innedok.Clear();
            if (Typ.SelectedItem.ToString().Equals("Sprzedaż", StringComparison.Ordinal))
            {
                sprz_lista.Visibility = Visibility.Visible;
                inne_lista.Visibility = Visibility.Hidden;
                koszty_lista.Visibility = Visibility.Hidden;
                using (LINQtoDBDataContext db = new LINQtoDBDataContext())
                {
                    var records = from record in db.DokumentSprzedazies
                                  where Convert.ToDateTime(record.Data) >= Convert.ToDateTime(Data_od.Text) && Convert.ToDateTime(record.Data) <= Convert.ToDateTime(Data_do.Text)
                                  select record;
                    sprzedaz = records.ToList();
                }
                sprz_lista.ItemsSource = sprzedaz;
            }
            else if (Typ.SelectedItem.ToString().Equals("Koszty", StringComparison.Ordinal))
            {
                sprz_lista.Visibility = Visibility.Hidden;
                inne_lista.Visibility = Visibility.Hidden;
                koszty_lista.Visibility = Visibility.Visible;
                using (LINQtoDBDataContext db = new LINQtoDBDataContext())
                {
                    var records = from record in db.DokumentKosztows
                                  where Convert.ToDateTime(record.Data) >= Convert.ToDateTime(Data_od.Text) && Convert.ToDateTime(record.Data) <= Convert.ToDateTime(Data_do.Text)
                                  select record;
                    koszty = records.ToList();
                }
                koszty_lista.ItemsSource = koszty;
            }
            else if (Typ.SelectedItem.ToString().Equals("Pozostałe", StringComparison.Ordinal))
            {
                sprz_lista.Visibility = Visibility.Hidden;
                inne_lista.Visibility = Visibility.Visible;
                koszty_lista.Visibility = Visibility.Hidden;
                using (LINQtoDBDataContext db = new LINQtoDBDataContext())
                {
                    var records = from record in db.DokumentInnies
                                  where Convert.ToDateTime(record.Data) >= Convert.ToDateTime(Data_od.Text) && Convert.ToDateTime(record.Data) <= Convert.ToDateTime(Data_do.Text)
                                  select record;
                    innedok = records.ToList();
                }
                inne_lista.ItemsSource = innedok;
            }
            edytuj.IsEnabled = true;
        }

        private void dodaj_Click(object sender, RoutedEventArgs e)
        {
            if (Typ.SelectedItem.ToString().Equals("Sprzedaż", StringComparison.Ordinal))
            {
                new DokumentSprzedaz(id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika).Show();
                this.Close();
            }
            else if (Typ.SelectedItem.ToString().Equals("Koszty", StringComparison.Ordinal))
            {
                new DokumentKoszt(id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika).Show();
                this.Close();
            }
            else if (Typ.SelectedItem.ToString().Equals("Pozostałe", StringComparison.Ordinal))
            {
                new DokumentInne(id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika).Show();
                this.Close();
            }
        }

        private void edytuj_Click(object sender, RoutedEventArgs e)
        {

        }


        private void ksiega_Click(object sender, RoutedEventArgs e)
        {
            new KsiegaPiR(id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika).Show();
            this.Close();
        }

        private void Powrot_bt_Click(object sender, RoutedEventArgs e)
        {
            new Menu(id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika).Show();
            this.Close();
        }

    }
}
